// =====================================================================================
// 
//       Filename:  battaglia_navale.cpp
// 
//    Description:  main della battaglia navale
// 
//         Author:  Davide Poletti , davide.pole@gmail.com
//					Paolo Pigato , p.pigato@hotmail.com	
//        Company:  P&P.cpp
// 
// =====================================================================================

#include "GameManager.hh"

int main(){
    int dim_mare = 8;
    bool tipo_G1 = false;
    bool tipo_G2 = false;
    int level_G1 = 1;
    int level_G2 = 3;
    bool gioca = true;
    int scelta;
    GameManager* GM;
	while (gioca) {
        cout << "\n**********************************************" << endl;
        cout << "MENU:" << endl;
        cout << "1) SCEGLI TIPO GIOCATORE 1" << endl;
        cout << "2) SCEGLI TIPO GIOCATORE 2" << endl;
        cout << "3) SCEGLI DIMENSIONE DEL MARE" << endl;
        cout << "4) GIOCA" << endl;
        cout << "5) RINGRAZIAMENTI" << endl; 
        cout << "6) ESCI" << endl;
        cin >> scelta;
        switch (scelta)
        {		
            case 1 : cout << "\nTIPOLOGIA GIOCATORE 1\n 0) COMPUTER \n 1) UMANO " << endl;	
                     cin >> tipo_G1;
                     if (!tipo_G1){
                         cout << "\nSCEGLI IL LIVELLO DEL COMPUTER (1-3)" << endl;
                         cin >> level_G1;
                         while (level_G1 < 1 || level_G1 > 3) {
                             cout << "Il livello del computer può essere solamente 1, 2 o 3" << endl;
                             cout << "SCEGLI IL LIVELLO DEL COMPUTER (1-3)" << endl;
                             cin >> level_G1;
                         } 
                     }
                     break;
            case 2 : cout << "\nTIPOLOGIA GIOCATORE 2\n 0) COMPUTER \n 1) UMANO " << endl;	
                     cin >> tipo_G2;
                     if (!tipo_G2){
                         cout << "\nSCEGLI IL LIVELLO DEL COMPUTER (1-3)" << endl;
                         cin >> level_G2;
                         while (level_G2 < 1 || level_G2 > 3) {
                             cout << "Il livello del computer può essere solamente 1, 2 o 3" << endl;
                             cout << "SCEGLI IL LIVELLO DEL COMPUTER (1-3)" << endl;
                             cin >> level_G2;
                         } 
                     }
                     break;
            case 3 : cout << "\nDIGITA LA DIMENSIONE DESIDERATA" << endl;	
                     cin >> dim_mare;
                     while (dim_mare < 1) {
                         cout << "La dimensione del mare deve essere positiva" << endl;
                         cout << "DIGITA LA DIMENSIONE DESIDERATA" << endl;	
                         cin >> dim_mare;
                     }
                     break;
            case 4 : GM = new GameManager(dim_mare, tipo_G1, tipo_G2, level_G1, level_G2);
                     GM->partita();
                     delete GM;
                     break;		 
            case 5 : cout << "\nSi ringraziano tutti coloro che hanno contribuito alla fase di test" << endl;
                     cout << endl << "(in ordine di apparizione)" << endl
                          << "Artù Breuer" << endl << "Beatrice Gaspari" << endl
                          << "Annalisa Carraro" << endl << "Marika Babetto" << endl
                          << "Andrea Pasquali" << endl << "Sara Corsini" << endl 
                          << "Unlucky Luke Lendaro" << endl << "Massimo Max Secci" << endl; 
                     break;
            case 6 : cout << "\nCIAO, ALLA PROSSIMA!" << endl << endl;	
                     gioca = false; 
                     break;
            default : cout << "\nScelta non valida" << endl;
                      break;						
        }			
    }
}

